package domain;
import java.util.Vector;


public class Usuario {
	private Domicilio domicilio;
	private int numero;
	protected static int proximoNumero;
	private Vector<Medicion>mediciones;
	private Vector<Factura>facturas;
	
	public Usuario(String calle, String altura, String piso, String dpto,
			String codigoPostal, String localidad, String provincia) {
		super();
		this.domicilio = new Domicilio(altura, calle,codigoPostal,dpto,localidad,piso,provincia);
		setMediciones(new Vector<Medicion>());
		setFacturas(new Vector<Factura>());
		numero = getProximoNroTarjeta();
	}
	
	public static int getProximoNroTarjeta()
	{
		return ++proximoNumero;
	}

	public int getNumero() {
		return numero;
	}

	/**
	 * @param mediciones the mediciones to set
	 */
	public void setMediciones(Vector<Medicion> mediciones) {
		this.mediciones = mediciones;
	}

	/**
	 * @return the mediciones
	 */
	public Vector<Medicion> getMediciones() {
		return mediciones;
	}
	
	public Domicilio getDomicilio() {
		return domicilio;
	}

	public void setDomicilio(Domicilio domicilio) {
		this.domicilio = domicilio;
	}
	
	public Medicion registrarMedicion(float consumo,String fecha)
	{
		Medicion m = new Medicion(consumo,fecha);
		mediciones.add(m);
		
		return m;
	}

	public Vector<Factura> getFacturas() {
		return facturas;
	}

	public void setFacturas(Vector<Factura> facturas) {
		this.facturas = facturas;
	}
	
	public Medicion ultimaMedicion()
	{	
		int i = 0;
		while (i< this.mediciones.size())
		{
			i++;
		}
		return this.mediciones.elementAt(i-1);
	}
	
	public Factura ultimaFactura()
	{	
		int i = 0;
		if(this.facturas.size() == 0)
			return null;
		else {
			while (i< this.facturas.size())
			{
				i++;
			}
			return this.facturas.elementAt(i-1);
		}
	}
	
}
